fonfandomcom_it-20200213-history
Djbdns
=Un dns per la rete locale= Debian Lenny 5.0 ora include Djbdns installabile con apt-get install djbdns . Easier cake for fond nerds 28/07/2009 Requisiti Per lo scopo dobbiamo recuperare un computer obsoleto , che magari avevamo dimenticato in soffitta o che qualcuno ha dismesso perché non più usabile con sistemi operativi moderni . L'unico requisito richiesto è una scheda di rete ed almeno 256 Mb di RAM. Otteniamo un cd di installazione minimale di Debian ed accertiamoci di avere una connessione ad internet stabile. Una volta installato il sistema operativo , iniziamo ad aggiungere via internet quello di cui abbiamo bisogno. Prima però dobbiamo dare un indirizzo di rete fisso alla nostra macchina , una default gateway (di solito l'indirizzo del router verso internet ) e un dns provvisorio per la risoluzione dei nomi. Ci logghiamo come root e editiamo il file /etc/network/interfaces con nano . nano -w /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.253 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 Ora facciamo puntare temporaneamente la macchina ad un server dns esterno per la risoluzione degli hosts internet : echo "nameserver 208.67.222.222" > /etc/resolv.conf /sourcecode Facciamo ripartire la rete con: /etc/init.d/network restart /sourcecode Controlliamo se riusciamo ad uscire su internet con un semplice ping : debians:/etc/apt# ping maya.ngi.it PING maya.ngi.it (88.149.128.3) 56(84) bytes of data. 64 bytes from maya.ngi.it (88.149.128.3): icmp_seq=1 ttl=54 time=58.3 ms /sourcecode A questo siamo pronti per prelevare da internet i pacchetti di cui abbiamo bisogno. Diamo una sistematina al nostro file /etc/apt/sources.list e rendiamolo simile a questo : deb http://mi.mirror.garr.it/mirrors/debian/ stable main contrib non-free deb-src http://mi.mirror.garr.it/mirrors/debian/ stable main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free /sourcecode Installazione daemons Provvediamo ora ad installare il server DNS. Per questo tutorial la scelta è ricaduta sul pacchetto djbdns Ci logghiamo come root e diamo i seguenti comandi : aptitude update aptitude install daemontools-installer Subito dopo installiamo daemontools con il comando : build-daemontools Durante l'installazione di daemontools ci verranno chieste alcune domande : Enter a directory where you would like to do this /tmp/daemontools <-- ENTER Which format would you like to use? fD <-- ENTER Press ENTER to continue... <-- ENTER Do you want to remove all files in /tmp/daemontools, except daemontools_0.76-9_i386.deb now? Yn <-- ENTER Do you want to install daemontools_0.76-9_i386.deb now? Yn <-- ENTER Do you want to purge daemontools-installer now? yN <-- ENTER Accettiamo i valori di default premendo enter ad ogni occorrenza. Ecco un altro pacchetto da installare : aptitude install ucspi-tcp-src Una volta scaricato installiamolo come già fatto per daemontools : build-ucspi-tcp Anche qui ci verranno proposte alcune domande , alle quali rispondiamo come prima con i valori di default : Enter a directory where you would like to do this /tmp/ucspi-tcp <-- ENTER Press ENTER to continue... <-- ENTER Do you want to remove all files in /tmp/ucspi-tcp, except ucspi-tcp_0.88-10_i386.deb now? Yn <-- ENTER Do you want to install ucspi-tcp_0.88-10_i386.deb now? Yn <-- ENTER Do you want to purge ucspi-tcp-src now? yN <-- ENTER Per finire preleviamo il pacchetto di djbdns e compiliamolo : aptitude install djbdns-installer Lanciamo l'installazione al solito con : build-djbdns Sempre le domande a cui rispondere con i valori di default : Enter a directory where you would like to do this /tmp/djbdns <-- ENTER Press ENTER to continue... <-- ENTER Do you want to remove all files in /tmp/djbdns, except djbdns_1.05-11_i386.deb now? Yn <-- ENTER Do you want to install djbdns_1.05-11_i386.deb now? Yn <-- ENTER Do you want to purge djbdns-installer now? yN <-- ENTER Bene , siamo a buon punto , non ci resta che configurare i parametri per la nostra rete interna . creazione files di configurazione Creiamo la directory in cui risiederanno i files di tinydns , dnscache e axfrdns . mkdir /var/lib/svscan /sourcecode Subito dopo configuriamo i tre demoni come segue : dnscache-conf dnscache dnslog /var/lib/svscan/dnscache 192.168.0.253 axfrdns-conf axfrdns dnslog /var/lib/svscan/axfrdns /var/lib/svscan/tinydns 127.0.0.1 tinydns-conf tinydns dnslog /var/lib/svscan/tinydns 127.0.0.1 E creiamo dei link simbolici nella directory service : ln -s /var/lib/svscan/dnscache /service ln -s /var/lib/svscan/axfrdns /service ln -s /var/lib/svscan/tinydns /service Abbiamo ultimato l'installazione di djbdns , non ci rimane che far ripartire i demoni /etc/init.d/djbdns restart Abbiamo così a disposizione una cache dns fornita da dnscache , un authoritative dns server che risponde al nome di tinydns e un replication chiamato axfrdns . Per il nostro semplice setup sarà necessario sistemare i parametri di dnscache e di tinydns . Cominciamo con dnscache . Entriamo nella directory /service/dnscache/root e controlliamo che esistano due sottodirectory ip e servers. Entriamo in servers ed editiamo il file @ con nano -w @ In questo file si dovrebbero trovare alcuni indirizzi ip di server dns di varie provenienze , tra cui Internic e Apnic che funzionano a dovere ma sono terribilmente laggati per ovvie ragioni di distanza. Possiamo a scelta inserire il dns server del nostro provider o in alternativa i soliti dns di OpenDNS. Entriamo nella sottodirectory ip e dovremmo trovare un file vuoto di nome 127.0.0.1 . Per permettere l'accesso alla cache a tutti i computer della sottorete dobbiamo creare un file vuoto chiamato 192.168.0 e lo facciamo con il comando touch 192.168.0. A questo punto la nostra cache è perfettamente funzionante e subito dovremmo godere dei benefici di una risoluzione dei nomi quasi istantanea per le url di maggiore richiesta. Ma uno dei nostri scopi è quello di tagliare fuori advertisement e cookies . filtraggio contenuti pubblicitari Per fare questo entriamo nuovamente in /services/dnscache/root/ e scarichiamo un piccolo script perl con wget http://qmail.jms1.net/djbdns/mkservers Dobbiamo compilare una bella lista di url da bloccare e a questo scopo ci viene incontro Fooldns che la rilascia pubblicamente , anche formattata per i nostri scopi . Eccone un breve estratto : tr.bt.alice.it:87.118.111.215 partners.sprintrade.com:87.118.111.215 adbard.net:87.118.111.215 ads.arcuspubblicita.it:87.118.111.215 adv.ilbanner.com:87.118.111.215 stats.wordpress.com:87.118.111.215 Quindi una volta prelevata la lista con wget http://fooldns.com/rules.txt apriamola e tramite nano facciamo una ricerca (ctrl W ) di 87.118.111.215 e una sostituzione (ctrl R ) di tutte le occorrenze (ctrl T) con 127.0.0.1. Rinominiamola in servers.txt : mv rules.txt servers.txt e lanciamo i seguenti comandi chmod +x mkservers ./mkservers In questo modo abbiamo compilato delle regole che dicono a dnscache di puntare a localhost per le url indicate. Bene , con dnscache abbiamo terminato , ora dobbiamo passare a tinydns con un semplicissimo settaggio. Entriamo in /service/tinydns/root ed editiamo il file data : nano -w /service/tinydns/root/data ..:127.0.0.1:a:259200 =.:127.0.0.1:8640 Ora non ci rimane che compilare questo file in formato cdb dando semplicemente make.Ultimo ma proprio ultimo step è far ripartire tutti i demoni con : /etc/init.d/djbdns restart Se tutto è andato liscio abbiamo ottenuto con poco sforzo e poche risorse un dns tutto nostro da spoofare a piacimento. Per poter far puntare tutti i computer della sottorete al nuovo server dns si puo' operare a manina o inserire il nuovo dns sul server dhcp della vostra rete LAN.